Detecting Strict Aliasing Violations in the Wild

نویسندگان

  • Pascal Cuoq
  • Loïc Runarvot
  • Alexander Cherepanov
چکیده

Type-based alias analyses allow C compilers to infer that memory locations of distinct types do not alias. Idiomatic reliance on pointers on the one hand, and separate compilation on the other hand, together make it impossible to get this aliasing information any other way. As a consequence, most modern optimizing C compilers implement some sort of type-based alias analysis. Unfortunately, pointer conversions, another pervasive idiom to achieve code reuse in C, can interact badly with type-based alias analyses. This article investigate the fine line between the allowable uses of low-level constructs (pointer conversions, unions) that should never cause the predictions of a standard-compliant type-based alias analysis to be wrong, and the dangerous uses that can result in bugs in the generated binary. A sound and precise analyzer for strict aliasing violations is briefly described.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

CRUST: A Bounded Verifier for Rust

Rust is a modern systems language that provides guaranteed memory safety through static analysis. However, Rust includes an escape hatch in the form of “unsafe code,” which the compiler assumes to be memory safe and to preserve crucial pointer aliasing invariants. Unsafe code appears in many data structure implementations and other essential libraries, and bugs in this code can lead to memory s...

متن کامل

Attenuation of spatial aliasing in CMP domain by non-linear interpolation of seismic data along local slopes

Spatial aliasing is an unwanted side effect that produces artifacts during seismic data processing, imaging and interpolation. It is often caused by insufficient spatial sampling of seismic data and often happens in CMP (Common Mid-Point) gather. To tackle this artifact, several techniques have been developed in time-space domain as well as frequency domain such as frequency-wavenumber, frequen...

متن کامل

Trace-Based Memory Aliasing Across Program Versions

One of the major costs of software development is associated with testing and validation of successive versions of software systems. An important problem encountered in testing and validation is memory aliasing, which involves correlation of variables across program versions. This is useful to ensure that existing invariants are preserved in newer versions and to match program execution histori...

متن کامل

Constraint Conjunction versus Grounded Constraint Subhierarchies in Optimality Theory

A central assumption of classical Optimality Theory (Prince and Smolensky 1993) is that constraint domination is strict. That is, if constraint A outranks constraints B and C (A >> B, C), then a candidate output that violates A can never be favored over one that satisfies A but violates B and/or C, no matter how many violations of B and C occur. Tableau (1) illustrates the familiar scenario of ...

متن کامل

The effect of new road traffic laws on fatal and non-fatal injury rates in Iran

Background and aims: This study aimed to evaluate the effect of enforcement of new traffic laws on the fatal and non- fatal injury rates in Iran. Methods: In a longitudinal, interventional controlled trial study, all subjects with history of fatal and non-fatal injuries were studied. Their injuries were caused by six risky violations (unauthorized speed, illegal overtaking, red traffic light c...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2017